//利用vue3的vuex存储购物车商品的数据
import { createStore } from "vuex";

export default createStore({
    state: {
        cartList: [], //购物车列表数据
        orderList: [], //生成订单列表数据
        orderListed: [], //生成订单后列表数据
        edit: true, //编辑的状态
        userAddress: [{
                id: 1001,
                name: "周标",
                tel: "13680657816",
                province: "广东省",
                city: "广州市",
                country: "天河区",
                addressDetail: "asd",
                isDefault: true,
                areaCode: '110101'
            },
            {
                id: 1002,
                name: "赵睿",
                tel: "13680657666",
                province: "广东省",
                city: "广州市",
                country: "天河区",
                addressDetail: "asd",
                isDefault: false,
                areaCode: '110101'
            }
        ]
    },
    mutations: {
        // 添加购物车
        ADDCART(state, value) {
            state.cartList = value;
        },
        // 结算按钮
        PAY(state, value) {
            state.orderList = value;
        },
        // 删除
        DELETE(state, value) {
            state.cartList = value;
        },
        // 生成订单
        UPDATEORDER(state) {
            state.orderListed = state.orderListed.concat(state.orderList);
        },
        // 编辑
        EDIT(state, value) {
            if (value === 'delete') {
                state.edit = true
            } else {
                state.edit = !state.edit;
            }

        },
        // 新增地址的保存
        ADDADDRESS(state, value) {
            state.userAddress.map((item) => {
                if (value.isDefault) {
                    item.isDefault = false;
                }
            })
            state.userAddress.push(value);
        },

        // 编辑地址的保存
        CHANGEADDRESS(state, value) {
            state.userAddress = state.userAddress.map((item) => {
                if (value.isDefault) {
                    item.isDefault = false;
                }
                return item.id === value.id ? value : item;
            })
        },
        // 删除按钮
        DELETEADDRESS(state, value) {
            state.userAddress = state.userAddress.filter((item) => {
                return !(value.id === item.id)
            })
            if (value.isDefault && state.userAddress.length) {
                state.userAddress[0].isDefault = true;
            }
        }
    },
    actions: {}
})